package com.hengpeng.itfin.persist;

import java.util.List;

import com.hengpeng.common.persist.NestedSimplyDao;
import com.hengpeng.itfinbase.persist.InvestInfo;
import com.hengpeng.itfinbase.persist.InvestInfo.InvestStatus;

/**
 * <pre>
 * 投资持久层
 * </pre>
 * @author weiyuan
 * @version 1.0, 2015年6月2日
 */
public interface InvestInfoDao extends NestedSimplyDao<InvestInfo>
{
	/**
	 * <pre>
	 * 获取投资信息
	 * </pre>
	 * @param id
	 * @param status
	 * @return
	 */
	public InvestInfo getInvestInfo(Long id, InvestInfo.InvestStatus status);

	/**
	 * <pre>
	 * 获取投资列表
	 * </pre>
	 * @param borrowId
	 * @param status
	 * @return
	 */
	public List<InvestInfo> queryList(Long borrowId, InvestStatus[] status);

	/**
	 * <pre>
	 * 保存所有的投标信息
	 * </pre>
	 * @param invests
	 */
	public void saveList(List<InvestInfo> invests);

	/**
	 * <pre>
	 * 更新投资信息
	 * </pre>
	 * @param invest
	 */
	public void updateInvest(InvestInfo invest);

	public void saveInvest(InvestInfo invest);

	/**
	 * <pre>
	 * 更新投资信息
	 * </pre>
	 * @param invests
	 */
	public void updateList(List<InvestInfo> invests);

	/**
	 * <pre>
	 * 获取标的下的投资记录数
	 * </pre>
	 * @param borrowId
	 * @return
	 */
	public long countByBorrowId(Long borrowId, InvestStatus[] status);

	public List<InvestInfo> lockList(Long borrowId, InvestStatus[] status);
}
